Pascal/Turbo Pascal - Pulse <INTRO> versión 2

 
Vista:

Pulse <INTRO> versión 2

Publicado por Pascual (94 intervenciones) el 30/01/2005 16:07:26
PROGRAM Pausa;
USES
Crt;
PROCEDURE LeeTecla;
VAR
tecla : char;
BEGIN
Write ('Pulse <INTRO> para continuar...');
Writeln;
REPEAT (*Hasta que no pulsemos <INTRO> el bucle repetir no parar . Nota: la*)
(*tecla <INTRO> es la n£mero 13, por eso la condici¢n para que el *)
(*bucle se detenga es tecla=#13. *)
tecla := ReadKey;
UNTIL tecla = #13;
Writeln;
END;

PROCEDURE Listado;
VAR
cont : integer;
BEGIN
ClrScr;
FOR cont := 1 TO 1000 DO
BEGIN
Writeln (cont);
IF cont MOD 48 = 0 THEN (*La pantalla tiene 49 lineas, pero usamos cont MOD 48 porque el mensaje de Leetecla ocupa una posici¢n. Si cont MOD*)
(*48 = 0 entonces... *)
LeeTecla
END;
IF cont MOD 48 <> 0 THEN
LeeTecla (*Llamamos al procedimiento LeeTecla, esto lo hacemos para que se pida al usuario pulsar <INTRO> al final de mostrar
todo el listado independientemente de si cont MOD 45 es igual o no a 0. *)
END;

BEGIN
Listado
END.

Este programa funciona, lo podeis probar, este programa está bien si la pantalla tiene 49 líneas, pero me he dado cuenta (probando este programa en otros ordenadores) que no siempre tiene 49 líneas la pantalla. ¿Cómo pueo hacer un programa de este estilo que funcione en todos los ordenadores?. Gracias a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ya tengo la solución. Pero aun necesito más

Publicado por Pascual (94 intervenciones) el 30/01/2005 16:25:33
Lo que yo quiero se consigue usando Hi(WindMax), es decir, sólo hay que sustituir 48 por (Hi(WindMax)-1).
El problema es que no puedo usar esa función, Hi(WinMax), me la tendría que crear yo sólo, ¿sería muy complicado?. ¿Alguna idea de como crear la función Hi(WindMax)?. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ya tengo la solución. Pero aun necesito más

Publicado por Hurricae (12 intervenciones) el 31/01/2005 10:37:53
Tomando en cuenta que las variables "WindMin" y "WindMax" son de tipo "Word", las funciones quedarían:
1
2
3
4
5
6
7
8
9
Function Hi(N :Word) :Byte;
    Begin
        Hi := N div 256;
    End; {Hi}
 
Function Lo(N :Word) :Byte;
    Begin
        Lo := N Mod 256;
    End; {Lo}
Espero te sean de utilidad. Saludos ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ya tengo la solución. Pero aun necesito más

Publicado por Diego Romero (786 intervenciones) el 01/02/2005 15:13:33
Pregunta: ¿por qué no puedes usar Hi(WindMax)?, está en la unidad CRT (Uses Crt;).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar